The MX lib behaviour and functionality can be modified with run-time environments variable,
and/or configure time options. The main environment variables are described in the README.
The following options are reserved for MX development.


Thread-safety and progression:
-------------------------------
MX_MONOTHREAD=[0|1] (default=0):
  setting it to 1 will disable the progression thread and remove the
  blocking action of MX blocking calls. in many case you will loose
  the ability to overlap communication and computation efficiently.
  The MX library will no longer be thread-safe either.

configure option --disable-thread-safety corresponds to hardcoding the MX_MONOTHREAD=1
case at compile-time, and allow compile-time optimizations.

Note that MX_MONOTHREAD=1 is not a recommended setting for monothread
programs (the monothread refers to the implementation of the lib
rather that the number of threads of the applicatoin), disabling
the progression thread can be detrimental to performance.


Message completion:
-------------------
MX_ZOMBIE_SEND=[0|1] (default 1)
  By default message below 32k are completed early as soon as the user buffer can be safely
  overwritten and before the message might have finished being send over the network. Finishing
  the transmission (possibly after the send has been reported as complete to the application) 
   will be done in the backgroung by the NIC and the MX lib.
  Setting MX_ZOMBIE_SEND=0 will ensure a message is only reported as completed when it has safely
  reached its destination.


Misc:
-----

MX_NO_MYRINET=[0|1] (default 0)
    Setting to 1 will make the library assume there is no Myrinet card or the machine and no MX driver.
    Only intra-machine communications will be possible, and there are limitations on the maximum message size.


Developement options:
----------------------

The following options are only meant for debugging the MX lib, and not intended to be used by regular users:

MX_FW_ACK=[0|1] (default depends on firmware)
   Setting to 1 assume the firwmware handles network reliability, setting it to 0 assume the MX lib
    is responsible for reliability/ack-handling/retransmission.


--disable-rndv : disable the use of the large/rndv/pull messages provided by the firmware and implement
communication for larges messages on top of medium messages (up to 32k).
